Resumen

A partir de los datos sacados de la web ExploitDB y de Twitter vamos a realizar un análisis para responder las siguientes preguntas:

El proyecto está compuesto por el proyecto principal, el cual llama a diferentes funciones para realizar y mostrar la correlación de los datos en el cual se basa este estudio, y un package, éste proporciona las funciones comentadas anteriormente, asi como su implementación y la obtención de los datos.

A continuación se exponen los resultados obtenidos de ExploitDB y se hace una comparativa de los exploits y vulnerabiliadades de los últimos 7 días con los obtenidos a partir del 2000. El objetivo es contrastar si los datos de los últimos 7 días se pueden considerar una buena muestra.

Después de la comparativa, se correlarán los exploits con los tweets de alrededor del mundo de la última semana. Se ha escogido este período de tiempo debido a que la API de Twitter està limitada.

Por último, se sacan unas conclusiones para determinar si con los datos obtenidos y el estudio realizado ha sido suficiente para responder las preguntas planteadas.

ExploitDB

Obtención de datos

Nos nutrimos a base de un repositorio de Github. Éste pone a disposición de cualquier usuario un archivo csv con más de 37000 vulnerabilidades, que además es actualizado a diario. Cada vulnerabilidad nos proporciona información relevante como la id del exploit correspondiente en exploitDB, una descripción, la fecha de agregación a exploitDB, el autor, la plataforma a la cual afecta, el tipo de vulnerabilidad y una descripción mas específica de este.

Obtenemos el fichero CSV mediante la función:

get_exploitdb_All <- function() {
  csv <- RCurl::getURL("https://raw.githubusercontent.com/offensive-security/exploit-database/master/files.csv")
  db <- read.csv(text = csv,stringsAsFactors = F)
  return(db)
}

Anàlisi comparativo

Plataformas

Si se analizan las dos gráficas, se puede observar claramente que con mucha diferencia las plataformas de PHP y Windows son las que mas exploits tienen. No obstante, los datos obtenidos de la última semana no es así. Aunque sigue predominando Windows, muy empatado con los otros sistemas operativos Linux i OS X, PHP no tiene tanto peso.

<<<<<<< HEAD

=======

>>>>>>> 4a18c0a728d57243deb34ce6ff43cf380b238b67

Por lo tanto, cuando se haga la correlación se debe tener en cuenta que las plataformas con las que se ha cruzado la información con Twitter, no se pueden considerar como un resultado absoluto, no se debería generalizar.

Actividad en twitter

A continuación podemos ver la actividad que ha havido en twitter en las últimas 24 horas de las plataformas más susceptibles a ataques

Tipos de exploits

En el caso de los exploits se ha visto que puede varíar mucho entre semanas debido a que muchas veces los tipos vienen en bloque. Es decir, dada una vulnerabilidad pueden salir exploits diferentes pero del mismo tipo. Por lo tanto, no se debería generalizar.

<<<<<<< HEAD

=======

>>>>>>> 4a18c0a728d57243deb34ce6ff43cf380b238b67
Descripción específica del tipo de vulnearabilidad

Cada uno de los tipos de exploits especificados en el apartado anterior tiene una descripción más específica del la vulnerabilidad en cuestión. En este caso, es muy probable que los resultados sean diferentes entre si y por eso en la gráfica salen porcentages tan iguales. Como dato curioso, SQL injection és el tipo de vulnerabilidad mas exploitada en los últimos 20 años.

<<<<<<< HEAD

=======

>>>>>>> 4a18c0a728d57243deb34ce6ff43cf380b238b67

Twitter

<<<<<<< HEAD

La api de twitter nos proporciona la información necesaria para el estudio que queremos realizar. Para ello utilizamos

=======

La api de twitter nos proporciona la información necesaria para el estudio que queremos realizar. Para ello obtenemos un json al mandar una query contra la api. Al obtener el json parseamos su contenido y con ello obtenemos un dataframe con los datos que utilizaremos como el nombre de usuario, la ubicación del usuario, la coordenadas geográficas, el texto publicado y la hora de la publicación.

>>>>>>> 4a18c0a728d57243deb34ce6ff43cf380b238b67
#Obté dataframe amb exploits (tota la info)
exploitsDB <- SoCoTools::get_exploitdb(7)

#  Obté la data dels exploits
date <- paste(exploitsDB$date, sep=" ")

<<<<<<< HEAD
# Obtenció del que s'ha de buscar
tweet_search <- paste(exploitsDB$platform, exploitsDB$type ,exploitsDB$subtype, sep=" ")

#n <- vapply(strsplit(tweet_search[2], "\\W+"), length, integer(1))

=======
#n <- vapply(strsplit(tweet_search[2], "\\W+"), length, integer(1))

# Obtenció del que s'ha de buscar
tweet_search <- paste(exploitsDB$platform, exploitsDB$type ,exploitsDB$subtype, sep=" ")

>>>>>>> 4a18c0a728d57243deb34ce6ff43cf380b238b67
tweet_search <- gsub("[^[:alnum:][:blank:]+?&/\\-]", "", tweet_search)
tweet_search <- gsub("[0-9]+","",tweet_search)

tweet_search <- sub("/", " ",tweet_search) 
tweet_search <- sub("  ", "",tweet_search)

# En aquest punt tweet_search conté tots els valors a buscar sense caràcters especials i números

# Si es vol busccar per hashtags executar les següents comandes
tweet_search <- gsub(" ", " #", tweet_search)
tweet_search <- paste("#", tweet_search, sep="")

Análisis de resultados